package com.zhuifeng.product.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhuifeng.common.core.annotation.Excel;
import com.zhuifeng.common.core.web.domain.BaseEntity;
import com.zhuifeng.product.domain.ProductRultAttrCenter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

public class ProductResponse extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** 商品Id */
    private String productId;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String productName;

    /** 商品主图 */
    @Excel(name = "商品主图")
    private String productMasterMap;

    /** 商品轮播图 */
    private String productSlideshow;

    /** 商品描述 */
    @Excel(name = "商品描述")
    private String productDescriber;

    /** 商品单位 */
    @Excel(name = "商品单位")
    private String productUnit;

    /** 分类Id */
    @Excel(name = "分类Id")
    private String typeId;
    /** 品牌名称 */
    @Excel(name = "品牌名称")
    private String brandName;

    private List<ProductRultAttrCenter> productRuleCenterList;

    public List<ProductRultAttrCenter> getProductRuleCenterList() {
        return productRuleCenterList;
    }

    public void setProductRuleCenterList(List<ProductRultAttrCenter> productRuleCenterList) {
        this.productRuleCenterList = productRuleCenterList;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    /** 类型名称 */
    @Excel(name = "类型名称")
    private String typeName;

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    /** 品牌Id */
    @Excel(name = "品牌Id")
    private Long brandId;

    /** 商品销量 */
    @Excel(name = "商品销量")
    private Long productSales;

    /** ID */
    private String productRuleId;

    public String getProductRuleId() {
        return productRuleId;
    }

    public void setProductRuleId(String productRuleId) {
        this.productRuleId = productRuleId;
    }

    /** 商品添加时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "商品添加时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date productTime;

    /** 商品是否包邮（0包邮，1不包邮） */
    @Excel(name = "商品是否包邮", readConverterExp = "0=包邮，1不包邮")
    private String productMailStatus;

    /** 商品上下架状态（0上架，1下架） */
    @Excel(name = "商品上下架状态", readConverterExp = "0=上架，1下架")
    private String productStatus;

    /** 商品是否删除（0删除，1不删除） */
    @Excel(name = "商品是否删除", readConverterExp = "0=删除，1不删除")
    private Integer isDelete;

    /** 乐观锁 */
    private String revision;

    public void setProductId(String productId)
    {
        this.productId = productId;
    }

    public String getProductId()
    {
        return productId;
    }
    public void setProductName(String productName)
    {
        this.productName = productName;
    }

    public String getProductName()
    {
        return productName;
    }
    public void setProductMasterMap(String productMasterMap)
    {
        this.productMasterMap = productMasterMap;
    }

    public String getProductMasterMap()
    {
        return productMasterMap;
    }
    public void setProductSlideshow(String productSlideshow)
    {
        this.productSlideshow = productSlideshow;
    }

    public String getProductSlideshow()
    {
        return productSlideshow;
    }
    public void setProductDescriber(String productDescriber)
    {
        this.productDescriber = productDescriber;
    }

    public String getProductDescriber()
    {
        return productDescriber;
    }
    public void setProductUnit(String productUnit)
    {
        this.productUnit = productUnit;
    }

    public String getProductUnit()
    {
        return productUnit;
    }
    public void setTypeId(String  typeId)
    {
        this.typeId = typeId;
    }

    public String getTypeId()
    {
        return typeId;
    }
    public void setBrandId(Long brandId)
    {
        this.brandId = brandId;
    }

    public Long getBrandId()
    {
        return brandId;
    }
    public void setProductSales(Long productSales)
    {
        this.productSales = productSales;
    }

    public Long getProductSales()
    {
        return productSales;
    }
    public void setProductTime(Date productTime)
    {
        this.productTime = productTime;
    }

    public Date getProductTime()
    {
        return productTime;
    }
    public void setProductMailStatus(String productMailStatus)
    {
        this.productMailStatus = productMailStatus;
    }

    public String getProductMailStatus()
    {
        return productMailStatus;
    }
    public void setProductStatus(String productStatus)
    {
        this.productStatus = productStatus;
    }

    public String getProductStatus()
    {
        return productStatus;
    }
    public void setIsDelete(Integer isDelete)
    {
        this.isDelete = isDelete;
    }

    public Integer getIsDelete()
    {
        return isDelete;
    }
    public void setRevision(String revision)
    {
        this.revision = revision;
    }

    public String getRevision()
    {
        return revision;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("productId", getProductId())
                .append("productName", getProductName())
                .append("productMasterMap", getProductMasterMap())
                .append("productSlideshow", getProductSlideshow())
                .append("productDescriber", getProductDescriber())
                .append("productUnit", getProductUnit())
                .append("typeId", getTypeId())
                .append("brandId", getBrandId())
                .append("productSales", getProductSales())
                .append("productTime", getProductTime())
                .append("productMailStatus", getProductMailStatus())
                .append("productStatus", getProductStatus())
                .append("isDelete", getIsDelete())
                .append("revision", getRevision())
                .toString();
    }

}
